.TH std::basic_ostream::seekp 3 "2024.06.10" "http://cppreference.com" "C++ Standard Libary"
.SH NAME
std::basic_ostream::seekp \- std::basic_ostream::seekp

.SH Synopsis
   basic_ostream& seekp( pos_type pos );                             \fB(1)\fP
   basic_ostream& seekp( off_type off, std::ios_base::seekdir dir ); \fB(2)\fP

   Sets the output position indicator of the current associated streambuf object.

   Behaves as UnformattedOutputFunction (except without actually          \fI(since C++11)\fP
   performing output). After constructing and checking the sentry object,

   1) if fail() != true, sets the output position indicator to absolute (relative to
   the beginning of the file) value pos by calling rdbuf()->pubseekpos(pos,
   std::ios_base::out). In case of failure, calls setstate(std::ios_base::failbit).
   2) if fail() != true, sets the output position indicator to offset off relative to
   dir by calling rdbuf()->pubseekoff(off, dir, std::ios_base::out). In case of
   failure, calls setstate(std::ios_base::failbit).

.SH Parameters

   pos - absolute position to set the output position indicator to
   off - relative position (positive or negative) to set the output position indicator
         to
         defines base position to apply the relative offset to. It can be one of the
         following constants:

   dir - Constant Explanation
         beg      the beginning of a stream
         end      the ending of a stream
         cur      the current position of stream position indicator

.SH Return value

   *this

.SH Exceptions

   1,2) May throw std::ios_base::failure in case of failure, if exceptions() & failbit
   != 0.

.SH Example


// Run this code

 #include <iostream>
 #include <sstream>

 int main()
 {
     std::ostringstream os("hello, world");
     os.seekp(7);
     os << 'W';
     os.seekp(0, std::ios_base::end);
     os << '!';
     os.seekp(0);
     os << 'H';
     std::cout << os.str() << '\\n';
 }

.SH Output:

 Hello, World!

   Defect reports

   The following behavior-changing defect reports were applied retroactively to
   previously published C++ standards.

      DR    Applied to         Behavior as published              Correct behavior
   LWG 129  C++98      there was no way to indicate a failure sets failbit on failure
   LWG 136  C++98      seekp could set the input stream       only sets the output
                                                              stream
   LWG 537  C++98      1. the type of pos was pos_type&       1. corrected to pos_type
                       2. the type of off was off_type&       2. corrected to off_type
   LWG 2341 C++98      the resolution of LWG issue 129 for    restored
                       overload \fB(2)\fP was removed

.SH See also

   tellp returns the output position indicator
         \fI(public member function)\fP
   tellg returns the input position indicator
         \fI(public member function of std::basic_istream<CharT,Traits>)\fP
   seekg sets the input position indicator
         \fI(public member function of std::basic_istream<CharT,Traits>)\fP
